package com.chushouya.order.service.common;

import com.chushouya.order.dto.api.stat.ClerkOrderDayStatQuery;
import com.chushouya.order.dto.api.stat.ClerkOrderMonthDTO;
import com.chushouya.order.dto.api.stat.ClerkOrderRangeQuery;

import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;

public interface ClerkOrderDayStatTaskService {

    /**
     * 统计业务员今日订单数据
     * @param clerkId 不传统计所有
     * @param date 不传统计今日
     */
    void clerkOrderTodayStat(Long clerkId, Date date);

    /**
     * 统计业务员昨日订单数据
     * @param clerkId 不传统计所有
     * @param date 不传统计昨日
     */
    void clerkOrderYesterdayStat(Long clerkId, Date date);

    void statOne(Date statDate, Date startTime, Date endTime, Date timeNow, Long clerkId, String clerkName,String city,Integer userType);

    /**
     * 统计所有业务员订单数据
     * @param query
     * @return
     */
    List<ClerkOrderMonthDTO> statClerkOrderMonth(ClerkOrderRangeQuery query);

    /**
     * 统计单个业务员订单数据
     * @param query
     * @return
     */
    List<ClerkOrderMonthDTO> statClerkOrderDay(ClerkOrderRangeQuery query);

    /**
     * 统计业务员数据总计
     * @param query
     * @return
     */
    ClerkOrderMonthDTO statClerkOrderCount(ClerkOrderRangeQuery query);

    /**
     * 导出业务员订单数据
     * @param query
     * @return
     */

    void statClerkOrderMonthExport(HttpServletResponse response, ClerkOrderRangeQuery query);

    /**
     * 统计业务员订单
     */
    List<ClerkOrderMonthDTO> statClerkOrderDayByMonth(ClerkOrderDayStatQuery query);
}
